VBA中一个自动刷新的ComboBox 您所在的位置:网站首页 combobox change VBA中一个自动刷新的ComboBox

VBA中一个自动刷新的ComboBox

#VBA中一个自动刷新的ComboBox| 来源: 网络整理| 查看: 265

ComboBox是VBA窗体中的一个控件,我们常常用于绑定一些序列用于选择某类特定的内容,包括Excel文件名称、表名称、透视表名称等。

本篇介绍一个在ComboBox下拉按钮中更新Excel文件名称的一个思路。

插入VBA窗体,增加一个ComboBox控件实例,完善代码:

'定义弹出显示的功能 '作用域:窗体 Private isShow As Boolean '新增ComboBox,完善代码: 'ComboBox有变化,则触发 Private Sub ComboBox1_Change() dim 验证Str as string 验证Str="XXXXXX表" '用于验证某表是否存在于该文件中,用于最开始的容错 On Error Resume Next If VBA.Len(ComboBox1.Text) > 0 Then 'ComboBox中包含内容时,则对该内容作验证 If isSheetsInWorkbooks(Workbooks(ComboBox1.Text), 验证Str) = False Then If isShow = False Then MsgBox "您所选的文件错误,无关键表和数据", , "提醒" isShow = True Else isShow = False End If ComboBox1.Text = "" End If End If End Sub '单击ComboBox Drop键时触发 Private Sub ComboBox1_DropButtonClick() FreshenComboxWbk ComboBox1 End Sub

插入VBA模块,完善代码:

'全局过程 'FreshenComboxWbk,向ComboBox中更新全部打开的Workbooks的名字(Excel默认不会添加xlam等后缀的文件名称) Public Sub FreshenComboxWbk(ByVal Cb As ComboBox, Optional XXX As Object) Dim Str Str = Cb.Text Cb.Clear Cb.Text = Str Dim WBK For Each WBK In Workbooks Cb.AddItem WBK.name Next End Sub

应用举例:

当打开一个文件的时候,下拉按钮弹出一个工作簿选项。如图1。

图1

当继续打开其他文件时,下拉按钮弹出多个工作簿选项。如图2。

图2

当然还可以把ComboBox change事件也抽象出来,变为通用过程,效果更佳,代码更少。

'定义弹出显示的功能 '作用域:模块 Private isShow As Boolean '作用域:VBA工程 Public Sub Comb_Change(ByVal Comb As Object, ByVal IsHaveSthName As String, Optional XXX As Object) On Error Resume Next If VBA.Len(Comb.Text) > 0 Then If isSheetsInWorkbooks(Workbooks(Comb.Text), IsHaveSthName) = False Then If isShow = False Then MsgBox "您所选的文件错误,无关键表和数据", , "提醒" isShow = True Else isShow = False End If Comb.Text = "" End If End If End Sub

各位睿智的知sir,现在开始大胆 编制一个 公用的 FreshenComboxSth 用于自动更新表名 吧。

'参考代码 Public Sub FreshenComboxSth(ByVal Cb As ComboBox, ByVal WBKname As String, Optional XXX As Object) Dim myWBK Dim isHaveWbk As Boolean 。。。 。。。 End Sub

小不懂坚持分享VBA实战代码,您会发现每个项目都是真实需求,每一段文字都是亲手研磨,并且十分荣幸与知Sir们在此共同进步。有兴趣一起见证并共同成长的知Sir们,请不吝关注喜欢分享收藏,您的每次点击都是在为获得更高质量、更优秀的内容投票哦。同时恳请并鼓励大家把文章中表达不到位,内容错误,代码有失水准的地方,指导订正,在此先诚挚的道谢。哦,对了,评论区是划水的好地方,小不懂当然也是划水能手,让我们荡起双桨 ^_^



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有